// components/GoodsSku/GoodsSku.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    basicInfo:{
      type:Object,
      default:null
    },
    properlist:{
      type:Array,
      default:[]
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    chooseProps:[],
    choosePropsId:[],
    count:1
  },

  /**
   * 组件的方法列表
   */
  methods: {
    changeCur(e){
      // console.log(e);
      // 获取一级下标和二级下标
      let {index1,index2,pid,id} = e.currentTarget.dataset
      // 给当前一级下标的对象添加属性，并将二级下标赋值
      this.properties.properlist[index1].activeIndex = index2
      // 获取点击的属性名
      let name = this.properties.properlist[index1].childsCurGoods[index2].name
      // 将属性名添加到数组中
      this.data.chooseProps[index1]=name
      // 将id进行拼接
      this.data.choosePropsId[index1]=pid+':'+id
      // 渲染到视图层
      this.setData({
        properlist:this.properties.properlist
      })
    },
    // 数量加减
    numChange(e){
      // console.log(e);
      this.data.count=e.detail
    },
    // 加入购物车
    cartAdd(){
      // 判断token值是否存在
      let token = wx.getStorageSync('token')
      if(!token){
        return wx.navigateTo({
          url: '/pages/login/login',
        })
      }
      // 判断是否选择规格
      if(this.data.chooseProps.length < this.properties.properlist.length){
        return wx.showToast({
          title: '请选择规格',
          icon:'error'
        })
      }
      // 获取本地数据
      let cart = wx.getStorageSync('cart')||[]
      // 定义对象
      let obj = {
        goodsId:this.properties.basicInfo.id,
        name:this.properties.basicInfo.name,
        checked:true,
        pic:this.properties.basicInfo.pic,
        minPrice:this.properties.basicInfo.minPrice,
        count:this.data.count,
        props:this.data.chooseProps.join(' '),
        propsId:this.data.choosePropsId.join()
      }
      // 查重
     let index =  cart.findIndex(item => {
       return item.goodsId==obj.goodsId && item.propsId == obj.propsId
      })
      // 添加数据
      if(index ==-1){
        cart.unshift(obj)
      }else{
        cart[index].count+=1
      }
      // 提示信息
      wx.showToast({
        title: '加入成功',
      })
      // 保存本地
      wx.setStorageSync('cart', cart)
      // 子传父
      this.triggerEvent('cartAdd',false)
    },
  }
})
